package middle.id_1_100;

import easy.pojo.Student;

import java.util.*;

public class hua16 {
    public static void main(String[] args) {

        Integer[] arr={2,4,5,7,1,3,9,8};
        String[] arr2={"121","1","12"};
        Arrays.sort(arr2, (s1, s2) -> s2.length() - s1.length());
        Arrays.sort(arr,new Comparator<Integer>(){
            @Override
            public int compare(Integer a1, Integer a2) {
                // 这里可以根据需要定义比较逻辑
                return a1 - a2; // 升序
            }
        });
        Student s1=new Student(2);
        Student s2=new Student(20);
        Student s3=new Student(12);
        Student s4=new Student(17);
        Student s5=new Student(7);
        Student[] students={s1,s2,s3,s4,s5};
        ArrayList<Student> ss=new ArrayList<>();
        ss.add(s1);ss.add(s2);ss.add(s3);ss.add(s4);ss.add(s5);
        Collections.sort(ss,new Comparator<Student>(){
            @Override
            public int compare(Student stu1, Student stu2) {
                return stu1.age - stu2.age;
            }
        });
        Collections.sort(ss,(stu1, stu2)->stu1.age-stu2.age);


    }
    // 自定义比较器类，实现 Comparator 接口
    class CustomComparator implements Comparator<Integer> {
        @Override
        public int compare(Integer a1, Integer a2) {
            // 这里可以根据需要定义比较逻辑
            return a1 - a2; // 升序
        }
    }
    interface swimming{
        void swim();
        void sing();
    }
    // 待实现函数，在此函数中填入答题代码
    private static int getLongestFlawedVowelSubstrLen(int flaw, String input) {
        boolean[] f = new boolean[input.length()];  // 判断字符串中每个字符是否为元音，并存储结果到列表 f 中
        for (int i = 0; i < input.length(); i++) {
            f[i] = isy(input.charAt(i));
        }
        int L = 0, R = 0, ans = 0, cnt = 0;  // 初始化双指针 L 和 R，结果 ans，以及辅音个数计数器 cnt
        while (R < input.length()) {
            if (!f[R]) {  // 如果当前字符是辅音
                cnt++;  // 辅音个数加一
            } else {
                while (cnt > flaw || !f[L]) {  // 当辅音个数大于 k 或者 L 指向的字符是辅音时就将左指针向前移动
                    if (!f[L]) {  // 如果 L 移动前指向的字符是辅音，就将计数减一
                        cnt--;
                    }
                    L++;  // 指针向前移动
                }
                if (cnt == flaw) {  // 如果辅音个数等于 k，也就是符合题目要求的子串
                    ans = Math.max(ans, R-L+1);  // 更新最大长度
                }
            }
            R++;  // R 指针右移
        }

        return ans;
    }
    static boolean isy(char ch) {  // 判断ch是否为元音字母
        return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' || ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U';
    }
}

